import type {
  DataTableColumn,
  RequestPage,
  PaginationProps,
} from "@/components/common/data-table";
export * from "@/components/common/data-table"

export interface FullTableInst {
  getData: () => void;
}

export interface FullTableProps {
  cacheKey?: string;
  columns: DataTableColumn[];
  checkedKeys?: string[];
  request: RequestPage;
  rowKey?: (row: any) => string;
  remote?: boolean;
  striped?: boolean;
  singleLine?: boolean;
  pagination?: PaginationProps;
  maxHeight?: number | string;
  minHeight?: number | string;
  scrollX?: number | string;
  size?: "small" | "medium" | "large";
}
export interface FullTableEmits {
  (e: "update:data", p: any[]): void;
  (e: "update:checkedKeys", p: any[]): void;
}

export interface TableSetting {
  isStriped: boolean;
  size: "small" | "medium" | "large";
  selection: boolean;
}

export interface ColumnCache {
  key: string;
  align: "left" | "right" | "center";
  fixed: "left" | "right" | boolean;
}